#pragma once

#ifndef __LIT__NAME__GENERATOR__HH__
#define __LIT__NAME__GENERATOR__HH__

#include <string>
#include <LitExport.hpp>
#include <LitString.h>

namespace Lit
{
	class LIT_API NameGenerator
	{
	protected:
		String mBase, mSep, mExt;
		size_t mCounter;
	public:
		NameGenerator( const String &base = "new", const String &ext = "cpp", const String &separator = "_" );
		NameGenerator( const NameGenerator& rk );

		String peek(bool with_ext=true) const;
		String generate(bool with_ext=true);
		void reset();

		void _setCount(size_t cnt );
	};
};
#endif